No **1º** em `app/controllers/site/home_controller.rb`, é mostrada a geração e recuperação do dado no cookie.
No **2º** exemplo, o uso do `eval` permite interpretar o dado do cookie (somente texto), e o formatando para uso no ruby (no caso um array).
No **3º** exemplo, o cookie está programado para expirar em 1 hora. Enquanto os outros exemplos são apagados quando a sessão se encerra (ao fechar o browser), este permanecerá até o fim do prazo estipulado.
No **4º** exemplo, usamos a assinatura no cookie configurada em `config/secrets.yml` para oferecer uma camada de proteção, pois autentica que o cookie pertence à aplicação, embaralhando a informação salva no cookie.
No **5º** exemplo, usamos criptografia aliada à assinatura do rails para aumentar ainda mais a camada de proteção.
Podemos armazenar o termo pesquisado em um cookie e retorná-lo na página quando recarregada. Para isso, precisamos editar o `app/controllers/site/search_controller.rb`:
```
class Site::SearchController < SiteController
def ads
@ads = Ad.search(params[:q], params[:page])
@categories = Category.all
cookies[:search_term] = params[:q]
end
end
```
Em `app/views/layouts/site.html.erb` recurperamos a informação do cookie utilizando o *condicional ternário*:
```
...
<%= text_field_tag(:q, params[:q] ,
{ class:"form-control", placeholder:
"#{cookies[:search_term] ?
cookies[:search_term] :
t('placeholder.search_for')}" }) %>
...
```
**Usando Cookies para Objetos**
Podemos armazenar *Objetos* da Aplicação nos cookies, reduzindo o uso das consultas ao servidor usando o `objetos.to_json` (inclusive usando o `eval` para recuperar como um *Array*).